﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Picea.Modelo;
using System.Data.SqlClient;
using System.Data.SqlServerCe;

namespace Picea.Data
{
    public class ProdutoDAO
    {

        public bool InserirProduto(Produto produto)
        {
            string sqlCliCommand = "INSERT INTO TB_PRODUTOS (stNomeProduto, CodProduto, fPreco, stDescricao, flgAtivo, idGrupo) VALUES" +
                                   "('{stNomeProduto}','{CodProduto}','{fPreco}','{stDescricao}','{flgAtivo}','{idGrupo}' );";
            

            sqlCliCommand = sqlCliCommand.Replace("{stNomeProduto}", produto.StNomeProduto).Replace(
                "{CodProduto}", produto.CodProduto.ToString()).Replace(
                    "{fPreco}", produto.fPreco.ToString().Replace(",","."));
            sqlCliCommand = sqlCliCommand.Replace( 
                    "{stDescricao}",produto.StDescricao).Replace(
                     "{flgAtivo}",produto.FlgAtivo.ToString()).Replace(
                     "{idGrupo}", (produto.idGrupo + 1).ToString());


            int nLinhasAfetadas = SqlHelper.ExecuteNonQuery(SqlHelper.PiceaConnection, sqlCliCommand);

            if (nLinhasAfetadas > 0)
                return true;
            else
                return false;

        }
        public List<Produto> BuscarProdutosPorGrupo(int indiceGrupoProduto)
        {
            string comandoSql = "SELECT idProduto,stNomeProduto,CodProduto,fPreco,stDescricao,flgAtivo,idGrupo FROM TB_PRODUTOS WHERE idGrupo = {GRUPO}";
            List<Produto> produtos = new List<Produto>();
            comandoSql = comandoSql.Replace("{GRUPO}", indiceGrupoProduto.ToString());

            using(SqlCeDataReader reader = SqlHelper.ExecuteReader(SqlHelper.PiceaConnection, comandoSql))
            {
                while(reader.Read())
                {
                    produtos.Add(new Produto()
                    {
                        IdProduto = Convert.ToInt32(reader[0]),
                        StNomeProduto = reader[1].ToString(),
                        CodProduto = reader[2].ToString(),
                        fPreco = Convert.ToDouble(reader[3]),
                        StDescricao = reader[4].ToString(),
                        FlgAtivo = Convert.ToInt32(reader[5]),
                        idGrupo = Convert.ToInt32(reader[6])
                    });
                    
                }
            }
            return produtos;
        }

        public Produto retornaProdutoPorId(int idProduto)
        {
            Produto produto = new Produto();
            string comandoSql = "SELECT idProduto,stNomeProduto,CodProduto,fPreco,stDescricao,flgAtivo,idGrupo FROM TB_PRODUTOS WHERE idProduto = {ID}";
            comandoSql = comandoSql.Replace("{ID}", idProduto.ToString());

            using(SqlCeDataReader reader = SqlHelper.ExecuteReader(SqlHelper.PiceaConnection, comandoSql))
            {
                if(reader.Read())
                {
                    produto = new Produto()
                    {
                        IdProduto = Convert.ToInt32(reader[0]),
                        StNomeProduto = reader[1].ToString(),
                        CodProduto = reader[2].ToString(),
                        fPreco = Convert.ToDouble(reader[3]),
                        StDescricao = reader[4].ToString(),
                        FlgAtivo = Convert.ToInt32(reader[5]),
                        idGrupo = Convert.ToInt32(reader[6])
                    };
                }
            }
            return produto;
        }
    }
}
